package cn.wolfcode.luowowo.website.util;


import cn.wolfcode.luowowo.cache.util.RedisKeys;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieUtil {
    //添加cookie
    public static void addCookie(String name, String value, int time, HttpServletResponse response){
        //5:创建cookie对象,以token的值作为value  这个是表现层的业务
        //cookie c = new cookie("token",token变量对应的随机值),设置cookie有效时间30分钟,在同response对象传到浏览器中
        Cookie cookie = new Cookie(name,value);
        //设置存活时间
        cookie.setMaxAge(time);
        cookie.setPath("/");//共享路径
        response.addCookie(cookie);
    }

    //获取token
    public static String getToken(HttpServletRequest request, HttpServletResponse response){
        //6: 用户再发起一次请求, 假设需要进行用户登录检查(需要获取用户信息), 此时可以通过request对象获取所有cookie对象
        Cookie[] cookies = request.getCookies();
        //7:遍历所有cookie对象, 查找name为 token的cookie对象, 并通过这个cookie对象的value值(token的值), 作为key,查询redis数据库, 进而获取user对象
        String token = null;
        if (cookies !=null && cookies.length>0) {
            for (Cookie cookie : cookies) {
                if ("token".equals(cookie.getName())) {
                    token= cookie.getValue();

                    cookie.setPath("/");
                    cookie.setMaxAge(RedisKeys.USER_LOGIN_TOKEN.getTime().intValue());
                    response.addCookie(cookie);
                    break;
                }
            }
        }
        return token;
    }
}
